/**
 * Copyright (C), 2018-2018
 * FileName: completeNumber  * Author:   lcsos
 * Date:     2018/10/10 19:17
 * Description:
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.qdu.study.arithmetic.first;

/**
 * 〈一句话功能简述〉<br>  
 *
 * 一个数如果恰好等于它的因子之和，这个数就称为 “完数“。
 * 例如6=1＋2＋3.编程 找出1000以内的所有完数
 *
 * @author Lcs
 * @create 2018/10/10 
 * @since 1.0.0
 */

public class completeNumber {
    //计算完数
    public static void main(String[] args) {
        //外层循环，循环1到1000内，如果是，则打印
        for (int i = 1; i <= 1000; i++)
        {
            //sum用来计数因子之和
            int sum=0;
            for (int j = 1; j < i; j++)
            {
                //每次第一步都先把一给加上
                if(i%j==0)
                {
                    sum+=j;
                }
            }
            //如果这个数正好等于他的所有因子之和，那么这个数就是完数
            if(i==sum)
            {
                System.out.println(i);
            }
        }
    }
}
